// *****************************************************
// * Fonction menus déroulants 2 niveaux *
// *****************************************************
// Compatible IE / NS6-7 / NS4.7
//
// pour Netscape 4, mettre une taille(Hauteur, Largeur) aux tableaux dans les calques et une couleur de fond aux calques
//
//******************************************************
// utilisation :
// Sur les liens des boutons principaux : onmouseover="showmenu('nom du calque a afficher', position horizontale en px)" onmouseout="timeoutmenu('nom du calque a afficher')"
// exp :
// Sur les liens des calques du premier niveau : onmouseover="showsousmenu('nom du sousmenu a afficher', 'nom du menu parent', decallage de hauteur en px par rapport au menu parent)" onmouseout="timeoutmenu('nom du sousmenu a afficher')"
// exp :
// Sur les liens des calques de deuxième niveau : onMouseOver="mouseondiv('nom du calque de deuxième niveau')" onMouseOut="timeoutsousmenu('nom du calque de deuxième niveau')"
// exp : texte du lien
var timeoutmenuID = new Array();
var activesousmenu="";
var activemenu="";
//detection du navigateur
if (document.all)
{strBrowser = "IE4+" };
if (document.layers)
{ strBrowser = "NS4" };
if (document.getElementById && !document.all)
{strBrowser= "NS6" };
function showmenu(nommenu, posit)
{
if(activemenu && activemenu != nommenu)
{hidemenu(activemenu)}
activemenu=nommenu
switch (strBrowser)
{
case "NS4":
winW = window.innerWidth;
winH = window.innerHeight;
calleft=8;
if(calleft>=0)
{calleft=Math.round(calleft/2)-15;}
else
{calleft=0; }
calleft=calleft+posit;
document[nommenu].left=calleft+5;
document[nommenu].top=84;
document[nommenu].visibility="show";
// vsize=document[nommenu].clip.bottom
// document[nommenu].clip.bottom=0
// slidemenu(nommenu, vsize)
break
case "NS6" :
if(document.getElementById(nommenu).style.visibility=="hidden")
{
winW = window.innerWidth;
winH = window.innerHeight;
calleft=8;
if(window.innerHeight=0)
{calleft=Math.round(calleft/2);}
else
{calleft=0; }
calleft=calleft+posit;
document.getElementById(nommenu).style.left=calleft;
document.getElementById(nommenu).style.top=84;
document.getElementById(nommenu).style.visibility="visible";
// vsize=document.getElementById(nommenu).offsetHeight;
// document.getElementById(nommenu).style.height=0
// slidemenu(nommenu, vsize)
}
else
{mouseondiv(nommenu)}
break
case "IE4+":
if(document.all[nommenu].style.visibility=="hidden")
{
winW = document.body.clientWidth;
winH = document.body.offsetHeight;
calleft=8;
if(calleft>=0)
{calleft=Math.round(calleft/2);}
else
{calleft=0;}
calleft=calleft+posit;
document.all[nommenu].style.left=calleft;
document.all[nommenu].style.top=84;
// document.all[nommenu].style.pixelHeight=0
document.all[nommenu].style.visibility="visible";
// slidemenu(nommenu, document.all[nommenu].offsetHeight)
}
else
{mouseondiv(nommenu)}
break
}
}
function showsousmenu(nommenu, nomparent, tdactif, nomlienactif, hsup)
{
mouseondiv(nomparent)
switch (strBrowser)
{
case "NS4":
if(activesousmenu)
{hidemenu(activesousmenu)}
clearTimeout(timeoutmenuID[nomparent])
if(nommenu){
clearTimeout(timeoutmenuID[nommenu])
activesousmenu=nommenu;
document[nommenu].par1=new String(nomparent)
document[nommenu].visibility="show"
document[nommenu].left=document[nomparent].left+document[nomparent].clip.right-4
document[nommenu].top=document[nomparent].top+hsup}
break
case "NS6" :
if(activesousmenu)
{hidemenu(activesousmenu)}
clearTimeout(timeoutmenuID[nomparent])
tdactif.bgColor="#FFFFFF"
document.getElementById(nomlienactif).style.color="#000000"
if(nommenu){
clearTimeout(timeoutmenuID[nommenu])
activesousmenu=nommenu;
document.getElementById(nommenu).par1=nomparent
document.getElementById(nommenu).style.visibility="visible"
document.getElementById(nommenu).style.left=parseInt(document.getElementById(nomparent).style.left)+document.getElementById(nomparent).offsetWidth
document.getElementById(nommenu).style.top=parseInt(document.getElementById(nomparent).style.top)+hsup}
break
case "IE4+":
if(activesousmenu)
{hidemenu(activesousmenu)}
clearTimeout(timeoutmenuID[nomparent])
tdactif.bgColor="#FFFFFF"
document.all[nomlienactif].style.color="#000000"
if(nommenu){
clearTimeout(timeoutmenuID[nommenu])
activesousmenu=nommenu;
document.all[nommenu].par1=nomparent
document.all[nommenu].style.visibility="visible"
document.all[nommenu].style.left=document.all[nomparent].style.pixelLeft+document.all[nomparent].offsetWidth
document.all[nommenu].style.top=document.all[nomparent].style.pixelTop+hsup}
break
}
}
function slidemenu(nommenu, maxheight)
{
switch (strBrowser)
{
case "NS4":
if(document[nommenu].clip.bottom<=maxheight)
{
document[nommenu].clip.bottom+=10;
window.setTimeout("slidemenu('"+nommenu+"', '"+maxheight+"')", 100)
}
else
{
document[nommenu].clip.bottom=maxheight;
}
break
case "NS6" :
if(document.getElementById(nommenu).offsetHeight<=maxheight)
{
document.getElementById(nommenu).style.height=document.getElementById(nommenu).offsetHeight+10;
window.setTimeout("slidemenu('"+nommenu+"', '"+maxheight+"')", 100)
}
else
{
document.getElementById(nommenu).style.height=maxheight;
}
break
case "IE4+":
if(document.all[nommenu].style.pixelHeight<=maxheight)
{
document.all[nommenu].style.pixelHeight+=10;
window.setTimeout("slidemenu('"+nommenu+"', '"+maxheight+"')", 50)
}
break
}
}
function timeoutmenu(nommenu, tdactif, nomlienactif)
{
switch (strBrowser)
{
case "NS4":
if(document[nommenu].par1)
{timeoutmenu(document[nommenu].par1)}
break
case "NS6" :
if(tdactif)
{
tdactif.bgColor=tdactif.parentNode.parentNode.parentNode.bgColor
document.getElementById(nomlienactif).style.color="#FFFFFF"
}
if(document.getElementById(nommenu).par1)
{timeoutmenu(document.getElementById(nommenu).par1)}
break
case "IE4+":
if(tdactif)
{
tdactif.bgColor=tdactif.parentElement.parentElement.bgColor
document.all[nomlienactif].style.color="#FFFFFF"
}
if(document.all[nommenu].par1)
{timeoutmenu(document.all[nommenu].par1)}
break
}
timeoutmenuID[nommenu]=window.setTimeout("hidemenu('"+nommenu+"')", 500);
}
function timeoutsousmenu(nommenu)
{
timeoutmenuID[nommenu]=window.setTimeout("hidemenu('"+nommenu+"')", 500);
switch (strBrowser)
{
case "NS4":
if(document[nommenu].par1)
{timeoutmenuID[document[nommenu].par1]=window.setTimeout("hidemenu('"+document[nommenu].par1+"')", 500);}
break
case "NS6" :
if(document.getElementById(nommenu).par1)
{timeoutmenuID[document.getElementById(nommenu).par1]=window.setTimeout("hidemenu('"+document.getElementById(nommenu).par1+"')", 500);}
break
case "IE4+":
if(document.all[nommenu].par1)
{
timeoutmenuID[document.all[nommenu].par1]=window.setTimeout("hidemenu('"+document.all[nommenu].par1+"')", 500);
}
break
}
}
function mouseondiv(nommenu)
{
clearTimeout(timeoutmenuID[nommenu])
switch (strBrowser)
{
case "NS4":
if(document[nommenu].par1)
{clearTimeout(timeoutmenuID[document[nommenu].par1]);}
break
case "NS6" :
if(document.getElementById(nommenu).par1)
{clearTimeout(timeoutmenuID[document.getElementById(nommenu).par1]);}
break
case "IE4+":
if(document.all[nommenu].par1)
{
clearTimeout(timeoutmenuID[document.all[nommenu].par1])
}
break
}
}
function hidemenu(nommenu)
{
switch (strBrowser)
{
case "NS4":
document[nommenu].visibility="hidden";
break
case "NS6" :
document.getElementById(nommenu).style.visibility="hidden";
break
case "IE4+":
document.all[nommenu].style.visibility="hidden";
break
}
}